package agenda;

import excecoes.FormaDeContatoInvalida;
import excecoes.NumeroInvalido;
import java.io.Serializable;

public class Telefone extends FormaDeContato implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * Cria uma forma de contato do tipo Telefone
	 * @param endereco O numero do telefone
	 * @throws NumeroInvalido Lanca excecao de NumeroInvalido caso o numero seja invalido
	 */

	public Telefone(String endereco) throws FormaDeContatoInvalida {
		super("Telefone", endereco, null);
	}

	/**
	 * Cria uma forma de contato do tipo Telefone
	 * @param endereco O numero do telefone
	 * @param comentario Um comentario sobre o telefone
	 * @throws Exception Lanca excecao de NumeroInvalido caso o numero seja invalido
	 */

	public Telefone(String endereco, String comentario) throws FormaDeContatoInvalida {
		super("Telefone", endereco, comentario);
	}

	/**
	 * @throws NumeroInvalido Lanca excecao de NumeroInvalido caso o numero do telefone seja invalido
	 */

	@Override
	public void validaEndereco(String numero) throws NumeroInvalido {

		if (numero.isEmpty()) {
			throw new NumeroInvalido("Um numero de telefone nao pode ser vazio!");
		}

		for (int i = 0; i < numero.length(); i++) {

			if (!Character.isDigit(numero.charAt(i)) && numero.charAt(i) != ' ') {
				throw new NumeroInvalido("Um numero de telefone so pode conter numeros ou espacos!");
			}
		}
	}

}
